# Задача 2
На выбор (обязательна практическая реализация):

- написать приложение, выводящее в GUI подробную информацию о производительности/загрузке железа
или
- ~~реализовать tui (не команды) для запуска скриптов, выполняющих следующие действия: очистка журналов ОС, перезагрузка, выключение~~
или
- ~~написать патч на ядро, ограничивающий возможность выгрузки иных модулей по списку. Обосновать методы задания списка.~~

## Приложение, выводящее в GUI подробную информацию о производительности/загрузке железа

Приложение написано на языке Python 3 с использованием фреймфорка PyQt и библиотек psutil (для получения статистики о работе оборудования) и pyqtgraph (для визуализации данных в виде графиков).
Код приложения находится в файле `hwmon.py`.

### Сборка

Можно упаковать приложение в deb-пакет, запустив в терминале команду из пакета `devscripts`:

```bash
debuild --no-tgz-check
```

Установить полученный deb-пакет можно камандой

```bash
sudo apt install ../hwmon_1.0_all.deb
```

Приложение установится в директорию `/usr/bin`

### Запуск

Установленное приложение можно запустить из терминала командой:
```bash
hwmon.py
```

Можно запустить файл `./hwmon.py` из директории с исходным кодом, не устанавливая deb-пакет.
Для этого необходимо установить зависимости:

```bash
sudo apt update
sudo apt install python3-pyqt5 python3-psutil python3-pyqtgraph
```

### Интерфейс

Приложение состоит их 4х вкладок: CPU, Memory, Disk, Network, на которых отображены данные по производительности/нагрузке соответствующей подсистемы.

[<img src="output/cpu_stat.png" width="500">](output/cpu_stat.png)
[<img src="output/mem_stat.png" width="500">](output/mem_stat.png)
[<img src="output/disk_stat.png" width="500">](output/disk_stat.png)
[<img src="output/net_stat.png" width="500">](output/net_stat.png)
